package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ly.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 销售价目详情对象 erp_sale_maked_detail
 *
 * @author wutao
 * @date 2024-07-15
 */
@Data
@Accessors(chain = true)
@Getter
@Setter
@TableName("erp_sale_maked_detail")
@ApiModel(value = "erp_sale_maked_detail对象", description = "销售价目详情")
public class SaleMakedDetailEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 销售价目表价格明细主键id
     */
    @TableId(type = IdType.INPUT)
    private String id;

    /**
     * 价目表id
     */
    @ApiModelProperty("价目表id")
    @TableField("marked_price_id")
    @Excel(name = "价目表id")
    private String markedPriceId;

    /**
     * 编码
     */
    @ApiModelProperty("编码")
    @TableField("code")
    @Excel(name = "编码")
    private String code;

    /**
     * 名称
     */
    @ApiModelProperty("名称")
    @TableField("name")
    @Excel(name = "名称")
    private String name;

    /**
     * 规格型号
     */
    @ApiModelProperty("规格型号")
    @TableField("model")
    @Excel(name = "规格型号")
    private String model;

    /**
     * BOM版本
     */
    @ApiModelProperty("BOM版本")
    @TableField("bom_version")
    @Excel(name = "BOM版本")
    private String bomVersion;

    /**
     * 批号
     */
    @ApiModelProperty("批号")
    @TableField("batch_num")
    @Excel(name = "批号")
    private String batchNum;

    /**
     * 计价单位
     */
    @ApiModelProperty("计价单位")
    @TableField("pricing_unit")
    @Excel(name = "计价单位")
    private String pricingUnit;

    /**
     * 起始数量
     */
    @ApiModelProperty("起始数量")
    @TableField("start_num")
    @Excel(name = "起始数量")
    private String startNum;




    /**
     * 起始数量
     */
    @ApiModelProperty("最大数量")
    @TableField("end_num")
    @Excel(name = "最大数量")
    private String endNum;


    /**
     * 价格至系数
     */
    @ApiModelProperty("最低价格")
    @TableField("start_price")
    @Excel(name = "最低价格")
    private String startPrice;

    /**
     * 价格
     */
    @ApiModelProperty("最高价格")
    @TableField("end_price")
    @Excel(name = "最高价格")
    private String endPrice;

    /**
     * 最低价格
     */
    @ApiModelProperty("价格系数")
    @TableField("min_price")
    @Excel(name = "价格系数")
    private String minPrice;

    /**
     * 生效日期
     */
    @ApiModelProperty("生效日期")
    @TableField("expiration_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationDate;

    /**
     * 失效日期
     */
    @ApiModelProperty("失效日期")
    @TableField("lose_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date loseDate;

    /**
     * 失效状态(1否2是)
     */
    @ApiModelProperty("失效状态(1否2是)")
    @TableField("lose_state")
    @Excel(name = "失效状态(1否2是)")
    private String loseState;

    /**
     * 失效人
     */
    @ApiModelProperty("失效人")
    @TableField("lose_person")
    @Excel(name = "失效人")
    private String losePerson;

    /**
     * 业务失效日期
     */
    @ApiModelProperty("业务失效日期")
    @TableField("business_lose_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "业务失效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date businessLoseDate;

    /**
     * 行审核状态(1审核中2审核结束)
     */
    @ApiModelProperty("行审核状态(1审核中2审核结束)")
    @TableField("line_state")
    @Excel(name = "行审核状态(1审核中2审核结束)")
    private String lineState;

    /**
     * 自定义基础资料1
     */
    @ApiModelProperty("自定义基础资料1")
    @TableField("remark_one")
    @Excel(name = "自定义基础资料1")
    private String remarkOne;

    /**
     * 自定一基础资料2
     */
    @ApiModelProperty("自定一基础资料2")
    @TableField("remark_tow")
    @Excel(name = "自定一基础资料2")
    private String remarkTow;

    /**
     * 自定义辅助资料
     */
    @ApiModelProperty("自定义辅助资料")
    @TableField("remark_sup")
    @Excel(name = "自定义辅助资料")
    private String remarkSup;

    /**
     * 自定义辅助资料2
     */
    @ApiModelProperty("自定义辅助资料2")
    @TableField("remark_sup_tow")
    @Excel(name = "自定义辅助资料2")
    private String remarkSupTow;

    /**
     * 自定义价格
     */
    @ApiModelProperty("自定义价格")
    @TableField("remark_price")
    @Excel(name = "自定义价格")
    private String remarkPrice;

    /**
     * 自定义价格2
     */
    @ApiModelProperty("自定义价格2")
    @TableField("remark_price_tow")
    @Excel(name = "自定义价格2")
    private String remarkPriceTow;

    /**
     * 自定义文本
     */
    @ApiModelProperty("自定义文本")
    @TableField("remark_txt")
    @Excel(name = "自定义文本")
    private String remarkTxt;

    /**
     * 自定义文本2
     */
    @ApiModelProperty("自定义文本2")
    @TableField("remark_txt_tow")
    @Excel(name = "自定义文本2")
    private String remarkTxtTow;

    /**
     * 实例id
     */
    @ApiModelProperty("实例id")
    @TableField("instance_id")
    @Excel(name = "实例id")
    private String instanceId;

    /**
     * 类型(1按物料2按物料分组)
     */
    @ApiModelProperty("类型(1按物料2按物料分组)")
    @TableField("type")
    @Excel(name = "类型(1按物料2按物料分组)")
    private String type;

    /**
     * 是否再用(1是2否)
     */
    @ApiModelProperty("是否再用(1是2否)")
    @TableField("is_used")
    @TableLogic
    @Excel(name = "是否再用(1是2否)")
    private String isUsed;

    @ApiModelProperty("业务type")
    @TableField (exist = false)
    private String businessType;

    @ApiModelProperty("流程模型id")
    @TableField (exist = false)
    private String modelId;


    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getModel() {
        return model;
    }

    public void setBomVersion(String bomVersion) {
        this.bomVersion = bomVersion;
    }

    public String getBomVersion() {
        return bomVersion;
    }

    public void setBatchNum(String batchNum) {
        this.batchNum = batchNum;
    }

    public String getBatchNum() {
        return batchNum;
    }

    public void setPricingUnit(String pricingUnit) {
        this.pricingUnit = pricingUnit;
    }

    public String getPricingUnit() {
        return pricingUnit;
    }

    public void setStartPrice(String startPrice) {
        this.startPrice = startPrice;
    }

    public String getStartPrice() {
        return startPrice;
    }

    public void setEndPrice(String endPrice) {
        this.endPrice = endPrice;
    }

    public String getEndPrice() {
        return endPrice;
    }

    public void setMinPrice(String minPrice) {
        this.minPrice = minPrice;
    }

    public String getMinPrice() {
        return minPrice;
    }

    public void setExpirationDate(Date expirationDate) {
        this.expirationDate = expirationDate;
    }

    public Date getExpirationDate() {
        return expirationDate;
    }

    public void setLoseDate(Date loseDate) {
        this.loseDate = loseDate;
    }

    public Date getLoseDate() {
        return loseDate;
    }

    public void setLoseState(String loseState) {
        this.loseState = loseState;
    }

    public String getLoseState() {
        return loseState;
    }

    public void setLosePerson(String losePerson) {
        this.losePerson = losePerson;
    }

    public String getLosePerson() {
        return losePerson;
    }

    public void setBusinessLoseDate(Date businessLoseDate) {
        this.businessLoseDate = businessLoseDate;
    }

    public Date getBusinessLoseDate() {
        return businessLoseDate;
    }

    public void setLineState(String lineState) {
        this.lineState = lineState;
    }

    public String getLineState() {
        return lineState;
    }

    public void setRemarkOne(String remarkOne) {
        this.remarkOne = remarkOne;
    }

    public String getRemarkOne() {
        return remarkOne;
    }

    public void setRemarkTow(String remarkTow) {
        this.remarkTow = remarkTow;
    }

    public String getRemarkTow() {
        return remarkTow;
    }

    public void setRemarkSup(String remarkSup) {
        this.remarkSup = remarkSup;
    }

    public String getRemarkSup() {
        return remarkSup;
    }

    public void setRemarkSupTow(String remarkSupTow) {
        this.remarkSupTow = remarkSupTow;
    }

    public String getRemarkSupTow() {
        return remarkSupTow;
    }

    public void setRemarkPrice(String remarkPrice) {
        this.remarkPrice = remarkPrice;
    }

    public String getRemarkPrice() {
        return remarkPrice;
    }

    public void setRemarkPriceTow(String remarkPriceTow) {
        this.remarkPriceTow = remarkPriceTow;
    }

    public String getRemarkPriceTow() {
        return remarkPriceTow;
    }

    public void setRemarkTxt(String remarkTxt) {
        this.remarkTxt = remarkTxt;
    }

    public String getRemarkTxt() {
        return remarkTxt;
    }

    public void setRemarkTxtTow(String remarkTxtTow) {
        this.remarkTxtTow = remarkTxtTow;
    }

    public String getRemarkTxtTow() {
        return remarkTxtTow;
    }

    public void setInstanceId(String instanceId) {
        this.instanceId = instanceId;
    }

    public String getInstanceId() {
        return instanceId;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setIsUsed(String isUsed) {
        this.isUsed = isUsed;
    }

    public String getIsUsed() {
        return isUsed;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("code", getCode())
                .append("name", getName())
                .append("model", getModel())
                .append("bomVersion", getBomVersion())
                .append("batchNum", getBatchNum())
                .append("pricingUnit", getPricingUnit())
                .append("startPrice", getStartPrice())
                .append("endPrice", getEndPrice())
                .append("minPrice", getMinPrice())
                .append("expirationDate", getExpirationDate())
                .append("loseDate", getLoseDate())
                .append("loseState", getLoseState())
                .append("losePerson", getLosePerson())
                .append("businessLoseDate", getBusinessLoseDate())
                .append("lineState", getLineState())
                .append("remarkOne", getRemarkOne())
                .append("remarkTow", getRemarkTow())
                .append("remarkSup", getRemarkSup())
                .append("remarkSupTow", getRemarkSupTow())
                .append("remarkPrice", getRemarkPrice())
                .append("remarkPriceTow", getRemarkPriceTow())
                .append("remarkTxt", getRemarkTxt())
                .append("remarkTxtTow", getRemarkTxtTow())
                .append("instanceId", getInstanceId())
                .append("type", getType())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("isUsed", getIsUsed())
                .toString();
    }
}
